package zdori;

public class J24_CompareObject {

	/**
	 * @param args
	 * 객체비교하기
	 * "내차색과 당신 차색이 똑같다"
	 * "내차와 당신차가 똑같다" (상태,색상,종류)
	 * 클래스의 객체는 실제 데이터가 저장된 주소를 가지고 있기 때문에 단순비교==로는 객체가 서로 같은지 알 수 없음
	 * 자바에서는 기본적으로 객체를 비교할 때에는 equals hashCode 메서드를 이용함
	 * 또한 유틸리티 클래스 Compareable,
	 * comparator 등을 이용하기도 함
	 * 
	 * 참고로 String 객체를 비교할때에는 equals 메서드를 이용해서 비교해야 함
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		CarVO  myCar = new CarVO("새것","빨강","스포츠카");
		CarVO  yourCar = new CarVO("새것","빨강","스포츠카");
		
		//System.out.println(myCar);
		//System.out.println(yourCar);
		
		if(myCar == yourCar){
			
			System.out.println("같음");
		}else{
			System.out.println("다름");
		}
		
		/********************************************************/
		
		if(myCar.color == yourCar.color){
		
			System.out.println("같음");
		}else{
			System.out.println("다름");
		}
		
		//
		
		String char1 = "가";
		String char2 = "가";
		if(char1 == char2){
			
			System.out.println("같음");
		}else{
			System.out.println("다름");
		}
		
		//
		String char3 = "나";
		String char4 = new String("나");
		
		//
		if(char3 == char4){
			
			System.out.println("같음");
		}else{
			System.out.println("다름");
		}
		
		if(char3.equals(char4)){
			
			System.out.println("같음");
		}else{
			System.out.println("다름");
		}
		
		//
		String char5 = new String("다");
		String char6 = new String("다");
		
		//
		if(char5 == char6){
			
			System.out.println("같음");
		}else{
			System.out.println("다름");
		}
		
		if(char5.equals(char6)){
			
			System.out.println("같음");
		}else{
			System.out.println("다름");
		}
	}

}

class CarVO{
	public String status;
	public String color;
	public String type;
	
	public CarVO() {
		// TODO Auto-generated constructor stub
		
	}
	
	public CarVO(String status,String color,String type) {
		// TODO Auto-generated constructor stub
		this.status = status;
		this.color = color;
		this.type = type;
	}
}